package com.tbit.uqbike.object.pojo;

import com.tbit.uqbike.constant.UserConstant;
import com.tbit.uqbike.object.pojo.vo.AccountServiceConfigVO;
import lombok.Data;
import lombok.ToString;

import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * 账号
 *
 * @author Leon
 * 2017年3月9日 上午10:57:06
 */
@Data
@ToString
public class Account {
    /**
     * 账户id
     */
    protected Integer accountId;
    /**
     * 父id
     */
    protected Integer parentId;
    /**
     * 用户类型（0：管理员；1：代理商）
     */
    protected Integer type;
    /**
     * 姓名
     */
    protected String name;
    /**
     * 密码
     */
    protected String password;

    protected String country;
    /**
     * 联系方式
     */
    protected String phone;
    /**
     * 邮箱
     */
    protected String email;
    /**
     * 添加时间
     */
    protected Date joinTime;
    /**
     * 更新时间
     */
    protected Date updateTime;
    /**
     * 备注
     */
    protected String remark;

    protected List<Role> roles;

    protected Set<String> menus;

    /***/
    protected List<Config> button;

    protected List<Account> children;
    /**
     * 删除标识
     */
    private Integer delFlag;

    /**
     * 有绑定区域
     */
    private Boolean hasBindArea;

    /**
     * 当前登录用户手机号
     */
    private String loginPhone;


    /**
     * subRoleType 子级角色类型:
     * 0 表示跟主权限一致，0是默认值
     * 1:表示区域运维管理员
     * 2:表示区域运维人员
     * 6:表示区域客服
     * 7:代表股东
     */
    /*private Integer subRoleType;*/

    /**
     * 人工客服电话配置信息
     * */
    private List<AccountServiceConfigVO> humanServiceContactVOS;

    /**
     * 在线客服开关；0-关闭，1-打开
     * */
    private Integer onlineServiceSwitch;

    /**
     * 在线客服url
     * */
    private String onlineServiceUrl;

    /**
     * 人工客服开关；0-关闭，1-打开
     */
    private Integer humanServiceSwitch;

    /**
     * 未在线提示
     */
    private String offlineTip;
    public boolean typeIsNotUserAgent() {
        return !this.type.equals(UserConstant.USER_AGENT);
    }

    public boolean typeIsUserAgent() {
        return this.type.equals(UserConstant.USER_AGENT);
    }

    public boolean typeIsFranchisee() {
        return this.type.equals(UserConstant.USER_FRANCHISEE);
    }

    public boolean typeIsBrand() {
        return this.type.equals(UserConstant.USER_BRAND);
    }
}
